package it.gat.controller;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

import it.gat.controller.resource.ResourceFactory;
import it.gat.model.Contratto;
import it.gat.model.Cliente;
import it.gat.webservice.string.Resource;

public class ContrattoController {
	
	public Contratto getContratto(int id)
	{
		return ResourceFactory.get(Resource.CONTRATTO,id,Contratto.class); 
	}
	
	public List<Contratto> getContrattoList()
	{
		return Arrays.asList(ResourceFactory.get(Resource.CONTRATTO,Resource.LISTAURI,Contratto[].class));
	}
	
	public void insertContratto(Contratto contratto,Cliente cliente)
	{
		contratto.setOreUsufruite(0);
		ResourceFactory.post(Resource.CONTRATTO+"/"+cliente.getIdCliente(), contratto,Contratto.class);
	}
	
	public void updateContratto(Contratto contratto)
	{
		ResourceFactory.put(Resource.CONTRATTO, contratto.getIdContratto(),contratto);
	}
	
	public void deleteContratto(int id)
	{
		ResourceFactory.delete(Resource.CONTRATTO,id);
	}

	public List<Contratto> getContrattiCliente(Cliente utenteLoggato) {
		return Arrays.asList(ResourceFactory.get(Resource.CONTRATTOCLIENTE,utenteLoggato.getIdCliente(),Contratto[].class));
	}
	
	public Contratto getContrattoAttivo(Cliente cliente){
		List<Contratto> contratti = getContrattiCliente(cliente);
		for(Contratto contratto:contratti)
		{
			Date now = new Date();
			if ((now.after(contratto.getDataInizio()))&&(now.before(contratto.getDataFine())))
					return contratto;
		}
		return null;
	}

}
